1. Field of the Invention
The present invention relates to data processing systems. In particular, it relates to methods for software development and specification.
2. Description of the Related Art
Some methodologies and development approaches have evolved that lead to highly structured software development and implementation processes. Examples of these are Object Oriented Analysis and Design using Unified Modeling Language (UML) and Model Driven Architecture (MDA). The description of MDA can be found at http://www.omq.org/mda/
The strength of MDA lies mainly in its emphasis on design and specification documentation before the start of the implementation phase; furthermore, allowing the implementation to be driven by such design document using few distinct steps. This approach is not applied to the entire design and implementation of active web applications.
Although, specific areas of such applications are modeled and implemented using the MDA approach; such approach is limited to parts and not the whole application. The reasons for this are expanded on below.
For active web applications, the use of Model View Controller architecture (MVC) reduces complexity by dividing the design and implementation into separate areas of concerns; this is illustrated in FIG. 1. Further division of MVC applications into finer layers, illustrated in FIG. 2, provide easier match to the modeling requirements.
Object Oriented Programming Analysis and Development is the standard in the software industry; for with UML (Unified Modeling Language) is the widely accepted means of modeling applications using such approach.
Whereas Unified Modeling Language (UML) could easily be applicable to Model segment 7, its application to the other segments is limited. For the Controller segment, only the Action Handler 6 could be modeled easily with UML, the rest of the controller specification and the View segment stand out as areas that are not amenable to MDA. This removes the possibilities of arriving at comprehensive modeling documentations, which could be collaboratively produced and approved, before commencement of the implementation phase.
At first glance it would appear as if there are modeling tools for MVC applications within UML suite. For instance, the flow logics that are both related to the controller and individual view pages are featured in the Use Case, Activity and Sequence diagrams.
By referring to the official scope of these diagrams, it would be clear that their focus and perspectives are not suitable for these purposes. The reference is the UML diagrams overview (OMG (2003a): Available at http://www.omg.org/docs/ptc/03-09-15.pdf
From these definitions, Use Case defines behavior of the system to an outside user, describing what can be done with the system, not the transformation, flow and assembly of the view pages. The Activity Diagrams focuses on logical flow that is of higher abstraction than physical pages, as stated in its definition: computations, workflows, object flow and control flow. Again, the Sequence diagrams are more suitable for activity and action sequencing than page sequencing. Furthermore, the sequencing on a page could involve multiple links on the page, multiple forms submission, as well as intra-page activities, like frame loading and Ajax refresh.
The presentation aspects of the View present modeling challenges, not only for web applications, but also for all applications in general. There are proposals to provide special extension to UML for such segments; however, none of these have yielded much fruition. An example of this could be seen in the article titled UML Activity Diagrams: Detailing User Interface Navigation on the site, http://www-128.ibm.com/developerworks/rational/library/4697.html. This involves additional definition of semantics and stereotypes beyond those available from standard UML. Multiple diagrams, that are not well integrated, would be required to capture the various aspects of UI; however, basic issues like the presentation look and feel and dynamics aspects, as well as intra-page or intra-frame activities are omitted.
In providing such extensions, the first major issue to surmount is the expansiveness of the documentation of the User Interface specification. By definition, user interface involves the whole user experience in interfacing with the computer and the resulting system responses or invocations. This covers a wide area. Furthermore, there is a need to accommodate the varying platforms. Platforms ranging from those pertaining to mobile devices and browser based platforms, to graphic based windows platforms of many flavors (Windows, MAC, Linux, etc.). All these have differences in event models, specifications of look and feel, and their repertoire of widgets. Widget is the term used for window components, like list boxes, buttons, etc., that are available on specific platform.
The lack of means of providing design models or design specifications is a direct contravention of well-known best practices. One long-standing process dubbed Software Development Life Cycle (SDLC), places specification and design phase before implementation. This was later presented as Model Driven Architecture, the common thread being the emphasis on having design blueprint or models, before embarking on implementation.
The current industry approaches lean toward User Interface (UI) components frameworks. These approaches encourage design as you build process, providing easy drag-and-drop design and assembly of graphic solutions. This emphasis is ostensible in the Java Specification Request 127 for Java Server Faces (RTM Sun Microsystems), defined at http://www.jcp.org/en/jsr/detail?id=127. The Webform Component provided by Microsoft Corporation also uses such approach for web applications development.
Whereas such component design and build approaches have potential with smaller projects of few pages and simple navigational scheme; the effect of lack of design phase becomes deleterious for larger projects. The encapsulation that they provide with these components is usually considered a plus. However, the negative aspect is the combination of areas of diverse disciplines into one, whereas there are page design, models and controller specialties and skills that could be provided by multiple individuals.